<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<!-- 
    // 1. Student 继承Person
    // 2. Person 包含一个实例变量 name， 包含一个方法 printName
    // 3. Student 包含一个实例变量 score， 包含一个实例方法printScore
    // 4. 所有Person和Student对象之间共享一个方法

-->
<script>

    // 定义Person构造函数
    // function Person(name) {
    //     this.name = name;
    // }

    // // Person的原型方法
    // Person.prototype.printName = function () {
    //     console.log('name: ' + this.name);
    // };

    // // 定义Student构造函数
    // function Student(name, score) {
    //     // 将this指向Person
    //     Person.call(this, name);
    //     this.score = score;
    // }
    // // 继承Person
    // Student.prototype = Object.create(Person.prototype);
    // // 要指回去
    // Student.prototype.constructor = Student;

    // // Student的原型方法
    // Student.prototype.printScore = function () {
    //     console.log('score: ' + this.score);
    // };
    // // 定义一个共享方法
    // function printDetails() {
    //     this.printName();
    //     if (this.score) {
    //         this.printScore();
    //     }
    // }
    // // 将printDetails方法添加到Person和Student的原型中
    // Person.prototype.printDetails = printDetails;
    // Student.prototype.printDetails = printDetails;
    // // 创建Person和Student的实例
    // var person = new Person('Alice');
    // var student = new Student('Bob', 95);
    // person.printName(); //  name: Alice
    // student.printScore(); //  score: 95
    // person.printDetails(); //  name: Alice
    // student.printDetails(); //  name: Bob  score: 95

</script>

</html>